package cn.kgc.fcm.springbootmybatisplusexample.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data   //setget
@AllArgsConstructor  //全部参数构造
@NoArgsConstructor   //无参构造
public class ResultDTO<T> {

  /**
   * 状态码 0 表示成功，1表示处理中，-1表示失败
   */
  private Integer code;
  /**
   * 数据
   */
  private T obj;
  /**
   * 描述
   */
  private String msg;

  /**
   * 成功，传入数据
   * @return
   */
  public static ResultDTO buildSuccess() {
    return new ResultDTO(0, null, null);
  }

  /**
   * 成功，传入数据
   * @param data
   * @return
   */
  public static ResultDTO buildSuccess(Object data) {
    return new ResultDTO(0, data, null);
  }

  /**
   * 失败，传入描述信息
   * @param msg
   * @return
   */
  public static ResultDTO buildError(String msg) {
    return new ResultDTO(-1, null, msg);
  }

  /**
   * 失败，传入描述信息,状态码
   * @param msg
   * @param code
   * @return
   */
  public static ResultDTO buildError(String msg, Integer code) {
    return new ResultDTO(code, null, msg);
  }
}